Add dev container for standardized development environment#660
Add dev container for standardized development environment#660rororowyourboat wants to merge 1 commit intomainfrom
Conversation
- Create .devcontainer/devcontainer.json with Python 3.11 base - Add setup.sh script for automatic dependency installation - Include comprehensive README with usage instructions - Configure VS Code extensions and settings - Support for VS Code Dev Containers and GitHub Codespaces - Pre-configure Python, Jupyter, Ruff, and Git extensions - Addresses issue #653
There was a problem hiding this comment.
Pull request overview
This PR adds a comprehensive dev container configuration to provide a standardized, reproducible development environment for MSML contributors. The implementation includes Docker-based containerization with VS Code integration and automated setup.
Changes:
- Added dev container configuration with Python 3.11, Git, GitHub CLI, and pre-configured VS Code extensions
- Created automated setup script that installs uv package manager and project dependencies
- Provided comprehensive documentation covering setup, usage, customization, and troubleshooting
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.devcontainer/devcontainer.json |
Defines dev container configuration with Python 3.11 base image, VS Code extensions, and editor settings |
.devcontainer/setup.sh |
Automated setup script that installs uv, syncs dependencies, and installs development tools |
.devcontainer/README.md |
Comprehensive documentation covering dev container features, getting started guide, usage examples, and troubleshooting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| # Install development tools | ||
| echo "Installing development tools..." | ||
| uv pip install --system ruff pytest pytest-cov |
There was a problem hiding this comment.
The --system flag installs packages to the system Python rather than into the virtual environment created by uv sync at .venv/. This is inconsistent with the rest of the setup and the documentation which references using the .venv virtual environment. Consider removing the --system flag so these development tools are installed into the project's virtual environment, or use uv tool install for global tool installation.
| uv pip install --system ruff pytest pytest-cov | |
| uv pip install ruff pytest pytest-cov |
| "tamasfe.even-better-toml", | ||
| "eamodio.gitlens" | ||
| ], | ||
| "settings": { |
There was a problem hiding this comment.
The Python interpreter path assumes that uv sync creates a virtual environment at .venv/bin/python. However, this path may differ on Windows containers (which would use .venv/Scripts/python.exe). While the Linux base image is being used, consider whether cross-platform compatibility is needed or add a comment documenting the Linux-specific assumption.
| "settings": { | |
| "settings": { | |
| // NOTE: This dev container uses a Linux base image; the interpreter path assumes a POSIX .venv/bin layout. |
Closes #653
Summary
This PR adds a dev container configuration to provide a reproducible, standardized development environment for MSML contributors.
Changes
Installing dependencies with uv... - Automated setup script
Benefits
Usage
VS Code Dev Containers
GitHub Codespaces
Related